home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 1998 November / IRIX 6.5.2 Base Documentation November 1998.img / usr / share / catman / p_man / cat3 / ifl / iflFormat.z / iflFormat
Text File  |  1998-10-20  |  32KB  |  595 lines

  1.  
  2.  
  3.  
  4. iiiiffffllllFFFFoooorrrrmmmmaaaatttt((((3333))))      IIIImmmmaaaaggggeeee FFFFoooorrrrmmmmaaaatttt LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll       iiiiffffllllFFFFoooorrrrmmmmaaaatttt((((3333))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      iiiiffffllllFFFFoooorrrrmmmmaaaatttt - abstraction of an image file format
  10.  
  11. IIIINNNNHHHHEEEERRRRIIIITTTTSSSS FFFFRRRROOOOMMMM
  12.      This is a base class with no inheritance.
  13.  
  14.  
  15. HHHHEEEEAAAADDDDEEEERRRR FFFFIIIILLLLEEEE
  16.      #include <il/iflFormat.h>
  17.  
  18.  
  19. CCCCLLLLAAAASSSSSSSS DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  20.      An iflFormat object represents a description of the capabilities of a
  21.      particular image file format.  Usually there exists at most one such
  22.      object per file format in a running program; functions that return
  23.      iflFormat*s (such as iiiiffffllllFFFFiiiilllleeee::::::::ggggeeeettttFFFFoooorrrrmmmmaaaatttt()) generally return a pointer to
  24.      the single static object of the appropriate subclass of iflFormat.
  25.  
  26.      iflFormat is an abstract base class; every iflFormat object is actually
  27.      an object of a file-format-specific subclass such as iflTIFFFormat.
  28.  
  29.    FFFFoooorrrrmmmmaaaatttt llllooooooookkkkuuuupppp ffffuuuunnnnccccttttiiiioooonnnnssss
  30.      An IFL application can use the ffffiiiinnnnddddNNNNeeeexxxxtttt(), ffffiiiinnnnddddBBBByyyyMMMMaaaaggggiiiicccc(),
  31.      ffffiiiinnnnddddBBBByyyyFFFFoooorrrrmmmmaaaattttNNNNaaaammmmeeee() and ffffiiiinnnnddddBBBByyyyFFFFiiiilllleeeeNNNNaaaammmmeeee() functions to step through all
  32.      supported file formats, or to look up an image file format by format
  33.      name, file name, or file magic number.  The return value of each of these
  34.      functions is an iflFormat* pointing to the single static object of the
  35.      appropriate subclass of iflFormat (such as iflTIFFFormat).
  36.  
  37.    SSSSuuuuppppppppoooorrrrtttteeeedddd aaaattttttttrrrriiiibbbbuuuutttteeee qqqquuuueeeerrrriiiieeeessss
  38.      These ...IsSupported() functions tell whether a given value of a given
  39.      image attribute is supported by the image file format.
  40.  
  41.      Note that certain combinations of parameters might not be supported, even
  42.      if each parameter is individually supported; thus these functions cannot
  43.      give a definitive positive answer for support of a set of parameters,
  44.      though they may give a definitive negative answer.
  45.  
  46.    PPPPrrrreeeeffffeeeerrrrrrrreeeedddd aaaattttttttrrrriiiibbbbuuuutttteeee qqqquuuueeeerrrriiiieeeessss
  47.      The getPreferred...() virtual member functions return the image file
  48.      format's "preferred" value for the respective attributes. The returned
  49.      value must be one of the supported values for that parameter, as reported
  50.      by the corresponding "isSupported" method.
  51.  
  52. DDDDEEEERRRRIIIIVVVVIIIINNNNGGGG SSSSUUUUBBBBCCCCLLLLAAAASSSSSSSSEEEESSSS
  53.      The derived class must define all of iflFormat's pure virtuals:
  54.      aaaacccccccceeeessssssssMMMMooooddddeeeeIIIIssssSSSSuuuuppppppppoooorrrrtttteeeedddd(), ttttyyyyppppeeeeIIIIssssSSSSuuuuppppppppoooorrrrtttteeeedddd(), oooorrrrddddeeeerrrrIIIIssssSSSSuuuuppppppppoooorrrrtttteeeedddd(),
  55.      oooorrrriiiieeeennnnttttaaaattttiiiioooonnnnIIIIssssSSSSuuuuppppppppoooorrrrtttteeeedddd(), ccccoooolllloooorrrrMMMMooooddddeeeellllIIIIssssSSSSuuuuppppppppoooorrrrtttteeeedddd(),
  56.      ccccoooommmmpppprrrreeeessssssssiiiioooonnnnIIIIssssSSSSuuuuppppppppoooorrrrtttteeeedddd(), ssssiiiizzzzeeeeIIIIssssSSSSuuuuppppppppoooorrrrtttteeeedddd(), ppppaaaaggggiiiinnnnggggIIIIssssSSSSuuuuppppppppoooorrrrtttteeeedddd(),
  57.      ppppaaaaggggeeeeSSSSiiiizzzzeeeeIIIIssssSSSSuuuuppppppppoooorrrrtttteeeedddd(), rrrraaaannnnddddoooommmmAAAAcccccccceeeessssssssRRRReeeeaaaaddddIIIIssssSSSSuuuuppppppppoooorrrrtttteeeedddd(),
  58.      rrrraaaannnnddddoooommmmAAAAcccccccceeeessssssssWWWWrrrriiiitttteeeeIIIIssssSSSSuuuuppppppppoooorrrrtttteeeedddd(), ggggeeeettttPPPPrrrreeeeffffeeeerrrrrrrreeeeddddTTTTyyyyppppeeee(), ggggeeeettttPPPPrrrreeeeffffeeeerrrrrrrreeeeddddOOOOrrrrddddeeeerrrr(),
  59.      ggggeeeettttPPPPrrrreeeeffffeeeerrrrrrrreeeeddddOOOOrrrriiiieeeennnnttttaaaattttiiiioooonnnn(), ggggeeeettttPPPPrrrreeeeffffeeeerrrrrrrreeeeddddCCCCoooolllloooorrrrMMMMooooddddeeeellll(),
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. iiiiffffllllFFFFoooorrrrmmmmaaaatttt((((3333))))      IIIImmmmaaaaggggeeee FFFFoooorrrrmmmmaaaatttt LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll       iiiiffffllllFFFFoooorrrrmmmmaaaatttt((((3333))))
  71.  
  72.  
  73.  
  74.      ggggeeeettttPPPPrrrreeeeffffeeeerrrrrrrreeeeddddCCCCoooommmmpppprrrreeeessssssssiiiioooonnnn(), ggggeeeettttPPPPrrrreeeeffffeeeerrrrrrrreeeeddddPPPPaaaaggggeeeeSSSSiiiizzzzeeee() and nnnneeeewwwwffffiiiilllleeeeoooobbbbjjjj().  This
  75.      will fully characterize the format, and, via nnnneeeewwwwffffiiiilllleeeeoooobbbbjjjj(), will tell
  76.      iiiiffffllllFFFFiiiilllleeee::::::::ooooppppeeeennnn() how to create an iflFile of this format's type.
  77.  
  78.      Each image file format subclass format is expected to declare a single
  79.      static object of its derived type. The base class constructor invoked
  80.      automatically when the DSO is opened (becuase of the static object
  81.      declaration) will put the derived format on the global format list as
  82.      part of its initialization.
  83.  
  84.      If you instal ifl_dev.sw.gifts then you can check out the source code
  85.      provided in /usr/share/src/ifl for more examples of deriving from
  86.      iflFormat.
  87.  
  88.  
  89. CCCCLLLLAAAASSSSSSSS MMMMEEEEMMMMBBBBEEEERRRR FFFFUUUUNNNNCCCCTTTTIIIIOOOONNNN SSSSUUUUMMMMMMMMAAAARRRRYYYY
  90.    CCCCoooonnnnssssttttrrrruuuuccccttttoooorrrr
  91.           iflFormat(const char* formatName)  _p_r_o_t_e_c_t_e_d
  92.  
  93.  
  94.    FFFFoooorrrrmmmmaaaatttt llllooooooookkkkuuuupppp
  95.           static iflFormat* findNext(int& index, int openDSOifNecessary = TRUE)
  96.           static iflFormat* findByMagic(int fd, int openDSOifNecessary = TRUE)
  97.           static iflFormat* findByFormatName(const char* formatName,
  98.                                              int openDSOifNecessary = TRUE)
  99.           static iflFormat* findByFileName(const char* fileName,
  100.                                            int noMatchRule = FALSE,
  101.                                            int openDSOifNecessary = TRUE)
  102.  
  103.  
  104.    AAAAttttttttrrrriiiibbbbuuuutttteeee qqqquuuueeeerrrriiiieeeessss
  105.           const char* getName()
  106.           const char* getDefaultSuffix()
  107.           const char* getDescription()
  108.  
  109.  
  110.    AAAAttttttttrrrriiiibbbbuuuutttteeee ssssuuuuppppppppoooorrrrtttt qqqquuuueeeerrrriiiieeeessss
  111.           int accessModeIsSupported(int mode)
  112.           virtual int typeIsSupported(iflDataType type)
  113.           virtual int orderIsSupported(iflOrder order)
  114.           virtual int orientationIsSupported(iflOrientation orientation)
  115.           virtual int colorModelIsSupported(iflColorModel colormodel)
  116.           virtual int compressionIsSupported(iflCompression compression)
  117.           virtual int sizeIsSupported(int width, int height, int z,
  118.                                       int c, iflOrientation orientation)
  119.           virtual int pagingIsSupported()
  120.           virtual int pageSizeIsSupported(int iWidth, int iHeight,
  121.                                           int iz, int ic, int pWidth,
  122.                                           int pHeight, int pz,
  123.                                           int pc, iflOrientation orientation)
  124.           virtual int randomAccessReadIsSupported()
  125.           virtual int randomAccessWriteIsSupported()
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. iiiiffffllllFFFFoooorrrrmmmmaaaatttt((((3333))))      IIIImmmmaaaaggggeeee FFFFoooorrrrmmmmaaaatttt LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll       iiiiffffllllFFFFoooorrrrmmmmaaaatttt((((3333))))
  137.  
  138.  
  139.  
  140.    AAAAttttttttrrrriiiibbbbuuuutttteeee pppprrrreeeeffffeeeerrrreeeennnncccceeee qqqquuuueeeerrrriiiieeeessss
  141.           virtual iflDataType getPreferredType()
  142.           virtual iflOrder getPreferredOrder()
  143.           virtual iflOrientation getPreferredOrientation()
  144.           virtual iflColorModel getPreferredColorModel(int nc=0)
  145.           virtual iflCompression getPreferredCompression()
  146.           virtual void getPreferredPageSize(int iWidth, int iHeight,
  147.                                             int iz, int ic, int& pWidth,
  148.                                             int& pHeight, int& pz,
  149.                                             int& pc, iflOrientation orientation)
  150.  
  151.  
  152.    IIIInnnnhhhheeeerrrriiiittttiiiinnnngggg aaaattttttttrrrriiiibbbbuuuutttteeeessss
  153.           iflStatus applyDefaults(iflFile* source, iflFileConfig& config)
  154.           iflStatus applyDefaults(iflFileConfig* source, iflFileConfig& config)
  155.           int haveDSOVersion(int major, int minor)
  156.           int haveICC()
  157.  
  158.  
  159.  
  160. FFFFUUUUNNNNCCCCTTTTIIIIOOOONNNN DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNNSSSS
  161.      iiiiffffllllFFFFoooorrrrmmmmaaaatttt(((())))
  162.  
  163.           iflFormat(const char* formatName)  _p_r_o_t_e_c_t_e_d
  164.  
  165.  
  166.           Derived classes should pass the name of the format as _f_o_r_m_a_t_N_a_m_e so
  167.           the format will be properly registered in the database.  This name
  168.           must match the name used in the 'ifl_database' file.
  169.  
  170.      aaaacccccccceeeessssssssMMMMooooddddeeeeIIIIssssSSSSuuuuppppppppoooorrrrtttteeeedddd(((())))
  171.  
  172.           int accessModeIsSupported(int mode)
  173.  
  174.  
  175.           This virtual member function tells whether the given access mode
  176.           (which must be one of _O__R_D_O_N_L_Y, _O__W_R_O_N_L_Y, or _O__R_D_W_R) is supported by
  177.           the subclass.
  178.  
  179.           Note that this function is also provided by iflDatabase, which gets
  180.           the information from the FTR database without the overhead of
  181.           opening any DSOs.
  182.  
  183.      aaaappppppppllllyyyyDDDDeeeeffffaaaauuuullllttttssss(((())))
  184.  
  185.           iflStatus applyDefaults(iflFile* source, iflFileConfig& config)
  186.           iflStatus applyDefaults(iflFileConfig* source, iflFileConfig& config)
  187.  
  188.  
  189.           These member functions attempt to change all of the parameters of
  190.           the iflFileConfig, _c_o_n_f_i_g, that have the value 0 (i.e. don't care)
  191.           to be reasonable values.  The values are inherited from the _s_o_u_r_c_e
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202. iiiiffffllllFFFFoooorrrrmmmmaaaatttt((((3333))))      IIIImmmmaaaaggggeeee FFFFoooorrrrmmmmaaaatttt LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll       iiiiffffllllFFFFoooorrrrmmmmaaaatttt((((3333))))
  203.  
  204.  
  205.  
  206.           iflFile* (if it is non-NULL and the value is supported), the _s_o_u_r_c_e
  207.           iflFileConfig* (if it is non-NULL and the value is supported), or
  208.           are heuristically selected to be a supported value most suitable for
  209.           copying data from the source iflFile* or iflFileConfig*.  If the
  210.           _s_o_u_r_c_e iflFile* is NULL or the _s_o_u_r_c_e iflFileConfig* is NULL, the
  211.           don't-care parameters are changed to the image file format's
  212.           preferred values.
  213.  
  214.      ccccoooolllloooorrrrMMMMooooddddeeeellllIIIIssssSSSSuuuuppppppppoooorrrrtttteeeedddd(((())))
  215.  
  216.           virtual int colorModelIsSupported(iflColorModel colormodel)
  217.  
  218.  
  219.           This virtual member function tells whether the given color model is
  220.           supported by the image file format.
  221.  
  222.      ccccoooommmmpppprrrreeeessssssssiiiioooonnnnIIIIssssSSSSuuuuppppppppoooorrrrtttteeeedddd(((())))
  223.  
  224.           virtual int compressionIsSupported(iflCompression compression)
  225.  
  226.  
  227.           This virtual member function tells whether the given compression is
  228.           supported by the image file format.
  229.  
  230.      ffffiiiinnnnddddBBBByyyyFFFFiiiilllleeeeNNNNaaaammmmeeee(((())))
  231.  
  232.           static iflFormat* findByFileName(const char* fileName,
  233.                                            int noMatchRule = FALSE,
  234.                                            int openDSOifNecessary = TRUE)
  235.  
  236.  
  237.           This static class member function is used to look up an image file
  238.           format by file name, where the file name is given by the _f_i_l_e_n_a_m_e
  239.           argument.  This is accomplished by matching the filename against
  240.           against the iflExtensions variable given for each image file format
  241.           in the FTR database.
  242.  
  243.           The _n_o_M_a_t_c_h_R_u_l_e argument can be used to limit searching to those
  244.           formats that have no match rule.
  245.  
  246.           The _o_p_e_n_D_S_O_i_f_N_e_c_e_s_s_a_r_y argument can be used to limit searching to
  247.           those formats whose DSOs have already been opened.
  248.  
  249.      ffffiiiinnnnddddBBBByyyyFFFFoooorrrrmmmmaaaattttNNNNaaaammmmeeee(((())))
  250.  
  251.           static iflFormat* findByFormatName(const char* formatName,
  252.                                              int openDSOifNecessary = TRUE)
  253.  
  254.  
  255.           This static class member function is used to look up an image file
  256.           format by name, where the name is given by the _f_o_r_m_a_t_n_a_m_e argument.
  257.  
  258.  
  259.  
  260.  
  261.                                                                         PPPPaaaaggggeeee 4444
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268. iiiiffffllllFFFFoooorrrrmmmmaaaatttt((((3333))))      IIIImmmmaaaaggggeeee FFFFoooorrrrmmmmaaaatttt LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll       iiiiffffllllFFFFoooorrrrmmmmaaaatttt((((3333))))
  269.  
  270.  
  271.  
  272.           The _o_p_e_n_D_S_O_i_f_N_e_c_e_s_s_a_r_y argument can be used to limit searching to
  273.           those formats whose DSOs have already been opened.
  274.  
  275.      ffffiiiinnnnddddBBBByyyyMMMMaaaaggggiiiicccc(((())))
  276.  
  277.           static iflFormat* findByMagic(int fd, int openDSOifNecessary = TRUE)
  278.  
  279.  
  280.           This static class member function is used to look up an image file
  281.           format by magic number of a given file that is open for reading.
  282.  
  283.           The _f_d argument is a file descriptor referring to the file.
  284.  
  285.           The _o_p_e_n_D_S_O_i_f_N_e_c_e_s_s_a_r_y argument can be used to limit searching to
  286.           those formats whose DSOs have already been opened.
  287.  
  288.      ffffiiiinnnnddddNNNNeeeexxxxtttt(((())))
  289.  
  290.           static iflFormat* findNext(int& index,
  291.                                      int openDSOifNecessary = TRUE)
  292.  
  293.  
  294.           This static class member function is used to step through the
  295.           (static, lazily created) list of supported file formats.
  296.  
  297.           To start searching initialize the _i_n_d_e_x paramter to zero.  It will
  298.           be automatically updated by each call so that successive calls will
  299.           iterate through all available formats.  If there are no more
  300.           formats, the function returns NULL.
  301.  
  302.           If _o_p_e_n_D_S_O_i_f_N_e_c_e_s_s_a_r_y is false, then no DSOs will be opened, and
  303.           only formats whose DSOs have already been opened will be returned.
  304.  
  305.           The following example prints the names of all supported formats:
  306.           (note that iflDatabase can do this too):
  307.  
  308.               iflFormat* fmt;
  309.               int index = 0;
  310.               while ((fmt = iflFormat::findNext(index)) != NULL)
  311.                   printf("%s\n", fmt->getName());
  312.  
  313.  
  314.      ggggeeeettttDDDDeeeeffffaaaauuuullllttttSSSSuuuuffffffffiiiixxxx(((())))
  315.  
  316.           const char* getDefaultSuffix()
  317.  
  318.  
  319.           This member function returns the default filename suffix (the first
  320.           suffix listed in the "suffixes" declaration for a format in the IFL
  321.           format database).  The returned value is a pointer to a static
  322.           string that is valid forever.  Note that the returned value may be
  323.           NULL.
  324.  
  325.  
  326.  
  327.                                                                         PPPPaaaaggggeeee 5555
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334. iiiiffffllllFFFFoooorrrrmmmmaaaatttt((((3333))))      IIIImmmmaaaaggggeeee FFFFoooorrrrmmmmaaaatttt LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll       iiiiffffllllFFFFoooorrrrmmmmaaaatttt((((3333))))
  335.  
  336.  
  337.  
  338.      ggggeeeettttDDDDeeeessssccccrrrriiiippppttttiiiioooonnnn(((())))
  339.  
  340.           const char* getDescription()
  341.  
  342.  
  343.           This member function returns the format description, or NULL if
  344.           there is none.
  345.  
  346.      ggggeeeettttNNNNaaaammmmeeee(((())))
  347.  
  348.           const char* getName()
  349.  
  350.  
  351.           This member function returns the format name, which is a pointer to
  352.           a static string that is valid forever.
  353.  
  354.      ggggeeeettttPPPPrrrreeeeffffeeeerrrrrrrreeeeddddCCCCoooolllloooorrrrMMMMooooddddeeeellll(((())))
  355.  
  356.           virtual iflColorModel getPreferredColorModel(int nc=0)
  357.  
  358.  
  359.           This virtual member function returns the image file format's
  360.           "preferred" value for the color model attribute for an image with _n_c
  361.           channels. If _n_c is zero the most common color model will be
  362.           returned.  The returned value must be one of the supported color
  363.           models, as reported by the ccccoooolllloooorrrrMMMMooooddddeeeellllIIIIssssSSSSuuuuppppppppoooorrrrtttteeeedddd() method.
  364.  
  365.      ggggeeeettttPPPPrrrreeeeffffeeeerrrrrrrreeeeddddCCCCoooommmmpppprrrreeeessssssssiiiioooonnnn(((())))
  366.  
  367.           virtual iflCompression getPreferredCompression()
  368.  
  369.  
  370.           This virtual member function returns the image file format's
  371.           "preferred" value for the compression attribute. The returned value
  372.           must be one of the supported compressions, as reported by the
  373.           ccccoooommmmpppprrrreeeessssssssiiiioooonnnnIIIIssssSSSSuuuuppppppppoooorrrrtttteeeedddd() method.
  374.  
  375.      ggggeeeettttPPPPrrrreeeeffffeeeerrrrrrrreeeeddddOOOOrrrrddddeeeerrrr(((())))
  376.  
  377.           virtual iflOrder getPreferredOrder()
  378.  
  379.  
  380.           This virtual member function returns the image file format's
  381.           "preferred" value for the order attribute. The returned value must
  382.           be one of the supported orders, as reported by the
  383.           oooorrrrddddeeeerrrrIIIIssssSSSSuuuuppppppppoooorrrrtttteeeedddd() method.
  384.  
  385.      ggggeeeettttPPPPrrrreeeeffffeeeerrrrrrrreeeeddddOOOOrrrriiiieeeennnnttttaaaattttiiiioooonnnn(((())))
  386.  
  387.           virtual iflOrientation getPreferredOrientation()
  388.  
  389.  
  390.  
  391.  
  392.  
  393.                                                                         PPPPaaaaggggeeee 6666
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400. iiiiffffllllFFFFoooorrrrmmmmaaaatttt((((3333))))      IIIImmmmaaaaggggeeee FFFFoooorrrrmmmmaaaatttt LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll       iiiiffffllllFFFFoooorrrrmmmmaaaatttt((((3333))))
  401.  
  402.  
  403.  
  404.           This virtual member function returns the image file format's
  405.           "preferred" value for the orientation attribute. The returned value
  406.           must be one of the supported orientations, as reported by the
  407.           oooorrrriiiieeeennnnttttaaaattttiiiioooonnnnIIIIssssSSSSuuuuppppppppoooorrrrtttteeeedddd() method.
  408.  
  409.      ggggeeeettttPPPPrrrreeeeffffeeeerrrrrrrreeeeddddPPPPaaaaggggeeeeSSSSiiiizzzzeeee(((())))
  410.  
  411.           virtual void getPreferredPageSize(int iWidth, int iHeight,
  412.                                             int iz, int ic, int& pWidth,
  413.                                             int& pHeight, int& pz,
  414.                                             int& pc, iflOrientation orientation)
  415.  
  416.  
  417.           This virtual member function returns the image file format's
  418.           "preferred" page size, _p_W_i_d_t_h, _p_H_e_i_g_h_t, _p_z and _p_c, for an image
  419.           whose size is _i_W_i_d_t_h, _i_H_e_i_g_h_t, _i_z and _i_c (which must be a supported
  420.           page size; the caller can check this by calling
  421.           ppppaaaaggggeeeeSSSSiiiizzzzeeeeIIIIssssSSSSuuuuppppppppoooorrrrtttteeeedddd()).
  422.  
  423.      ggggeeeettttPPPPrrrreeeeffffeeeerrrrrrrreeeeddddTTTTyyyyppppeeee(((())))
  424.  
  425.           virtual iflDataType getPreferredType()
  426.  
  427.  
  428.           This virtual member function returns the image file format's
  429.           "preferred" value for the data type attribute. The returned value
  430.           must be one of the supported data types, as reported by the
  431.           ttttyyyyppppeeeeIIIIssssSSSSuuuuppppppppoooorrrrtttteeeedddd() method.
  432.  
  433.      hhhhaaaavvvveeeeDDDDSSSSOOOOVVVVeeeerrrrssssiiiioooonnnn(((())))
  434.  
  435.           int haveDSOVersion(int major, int minor)
  436.  
  437.  
  438.           This member function returns TRUE if the DSO loaded is the same of
  439.           newer than the indicated major and minor version numbers.
  440.  
  441.      hhhhaaaavvvveeeeIIIICCCCCCCC(((())))
  442.  
  443.           int haveICC()
  444.  
  445.  
  446.           This member function returns TRUE if the DSO loaded supports the ICC
  447.           methods: ggggeeeettttIIIICCCCCCCCPPPPrrrrooooffffiiiilllleeee(), ffffrrrreeeeeeeeIIIICCCCCCCCPPPPrrrrooooffffiiiilllleeee() and sssseeeettttIIIICCCCCCCCPPPPrrrrooooffffiiiilllleeee().
  448.  
  449.      oooorrrrddddeeeerrrrIIIIssssSSSSuuuuppppppppoooorrrrtttteeeedddd(((())))
  450.  
  451.           virtual int orderIsSupported(iflOrder order)
  452.  
  453.  
  454.  
  455.  
  456.  
  457.  
  458.  
  459.                                                                         PPPPaaaaggggeeee 7777
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466. iiiiffffllllFFFFoooorrrrmmmmaaaatttt((((3333))))      IIIImmmmaaaaggggeeee FFFFoooorrrrmmmmaaaatttt LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll       iiiiffffllllFFFFoooorrrrmmmmaaaatttt((((3333))))
  467.  
  468.  
  469.  
  470.           This virtual member function tells whether the given dimension order
  471.           is supported by the image file format.
  472.  
  473.      oooorrrriiiieeeennnnttttaaaattttiiiioooonnnnIIIIssssSSSSuuuuppppppppoooorrrrtttteeeedddd(((())))
  474.  
  475.           virtual int orientationIsSupported(iflOrientation orientation)
  476.  
  477.  
  478.           This virtual member function tells whether the given orientation is
  479.           supported by the image file format.
  480.  
  481.      ppppaaaaggggeeeeSSSSiiiizzzzeeeeIIIIssssSSSSuuuuppppppppoooorrrrtttteeeedddd(((())))
  482.  
  483.           virtual int pageSizeIsSupported(int iWidth, int iHeight,
  484.                                           int iz, int ic, int pWidth,
  485.                                           int pHeight, int pz,
  486.                                           int pc, iflOrientation orientation)
  487.  
  488.  
  489.           This virtual member function tells whether the image file format
  490.           supports the given page size, _p_W_i_d_t_h, _p_H_e_i_g_h_t, _p_z and _p_c, for an
  491.           image whose size is _i_W_i_d_t_h, _i_H_e_i_g_h_t, _i_z and _i_c (which must be a
  492.           supported image size; the caller can check this by calling
  493.           ssssiiiizzzzeeeeIIIIssssSSSSuuuuppppppppoooorrrrtttteeeedddd()).
  494.  
  495.      ppppaaaaggggiiiinnnnggggIIIIssssSSSSuuuuppppppppoooorrrrtttteeeedddd(((())))
  496.  
  497.           virtual int pagingIsSupported()
  498.  
  499.  
  500.           This virtual member function tells whether the image file format
  501.           supports any page size other than the entire image size.
  502.  
  503.           This might be useful to a GUI application that allows the user to
  504.           enter a page size; the text entry widget could be disabled if paging
  505.           is not supported.
  506.  
  507.      rrrraaaannnnddddoooommmmAAAAcccccccceeeessssssssRRRReeeeaaaaddddIIIIssssSSSSuuuuppppppppoooorrrrtttteeeedddd(((())))
  508.  
  509.           virtual int randomAccessReadIsSupported()
  510.  
  511.  
  512.           This virtual member function tells whether the corresponding iflFile
  513.           subclass supports random access reads (as opposed to requiring that
  514.           reads occur sequentially).
  515.  
  516.           If the subclass does not support random access reads, out-of-order
  517.           calls to ggggeeeettttPPPPaaaaggggeeee() may return
  518.           iflStatusEncode(iflUNSUPPORTEDBYFORMAT) (if the limitation is
  519.           inherent in the file format) or
  520.           iflStatusEncode(iflUNSUPPORTEDBYLIBRARY) (if the limitation is due
  521.           to the implementation of the iflFile subclass).
  522.  
  523.  
  524.  
  525.                                                                         PPPPaaaaggggeeee 8888
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532. iiiiffffllllFFFFoooorrrrmmmmaaaatttt((((3333))))      IIIImmmmaaaaggggeeee FFFFoooorrrrmmmmaaaatttt LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll       iiiiffffllllFFFFoooorrrrmmmmaaaatttt((((3333))))
  533.  
  534.  
  535.  
  536.           This function is irrelevant for formats that do not support reading
  537.           or that do not support paging.
  538.  
  539.      rrrraaaannnnddddoooommmmAAAAcccccccceeeessssssssWWWWrrrriiiitttteeeeIIIIssssSSSSuuuuppppppppoooorrrrtttteeeedddd(((())))
  540.  
  541.           virtual int randomAccessWriteIsSupported()
  542.  
  543.  
  544.           This virtual member function tells whether the corresponding iflFile
  545.           subclass supports random access writes (as opposed to requiring that
  546.           writes occur sequentially).
  547.  
  548.           If the subclass does not support random access writes, out-of-order
  549.           calls to sssseeeettttPPPPaaaaggggeeee() may return
  550.           iflStatusEncode(iflUNSUPPORTEDBYFORMAT) (if the limitation is
  551.           inherent in the file format) or
  552.           iflStatusEncode(iflUNSUPPORTEDBYLIBRARY) (if the limitation is due
  553.           to the implementation of the iflFile subclass).
  554.  
  555.           This function is irrelevant for formats that do not support writing
  556.           or that do not support paging.
  557.  
  558.      ssssiiiizzzzeeeeIIIIssssSSSSuuuuppppppppoooorrrrtttteeeedddd(((())))
  559.  
  560.           virtual int sizeIsSupported(int width, int height, int z,
  561.                                       int c, iflOrientation orientation)
  562.  
  563.  
  564.           This virtual member function tells whether the given image size,
  565.           _w_i_d_t_h, _h_e_i_g_h_t, _z and _c, (which the caller must guarantee are all
  566.           positive values) is supported by the image file format.
  567.  
  568.      ttttyyyyppppeeeeIIIIssssSSSSuuuuppppppppoooorrrrtttteeeedddd(((())))
  569.  
  570.           virtual int typeIsSupported(iflDataType type)
  571.  
  572.  
  573.           This virtual member function tells whether the given data type is
  574.           supported by the image file format.
  575.  
  576. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  577.      iflFile, iflDatabase
  578.  
  579.  
  580. NNNNOOOOTTTTEEEE
  581.      Applications that use iflFormat functionality should check to see whether
  582.      the less-filling iflDatabase satisfies its needs.
  583.  
  584.  
  585.  
  586.  
  587.  
  588.  
  589.  
  590.  
  591.                                                                         PPPPaaaaggggeeee 9999
  592.  
  593.  
  594.  
  595.